﻿#ifndef CUSTOMMESSAGEDIALOG_H
#define CUSTOMMESSAGEDIALOG_H

#include "CustomLineEdit.h"
#include <QDialog>
#include <QLabel>
#include <QFrame>
#include <atomic>

typedef enum _PROC_STATUS_
{
    PROC_STATUS_UNKNOW = 0, // 未知状态
    PROC_STATUS_ACCEPT = 1, // 接受
    PROC_STATUS_REJECT = 2  // 拒绝
}PROC_STATUS;

typedef enum _PROC_TYPE_
{
    PROC_TYPE_UNKNOW   = 0, // 未知状态
    PROC_TYPE_MSGSHOW  = 1, // 信息展示
    PROC_TYPE_LINESHOW = 2  // 获取输入
}PROC_TYPE;

class CustomMessageDialog : public QDialog
{
    Q_OBJECT

public:
    explicit CustomMessageDialog(QWidget* parent = nullptr, PROC_TYPE nType = PROC_TYPE_UNKNOW);
    void setMessage(const QString& strTitle, const QString& strInfo, bool isWarning = false);
    void setShowRetNeed(bool bShow2Btn);
    void setTitle(const QString& strTitle);
    PROC_STATUS getStatus();

private slots:
    void onOkButtonClicked();
    void onCancelClicked();

private:
    QLabel* m_pTitleLabel;
    QLabel* m_pMessageLabel;
    QFrame* m_pToolFrame1;
    QFrame* m_pToolFrame2;

    std::atomic<bool> m_bBtnRetNeed;
    PROC_STATUS m_nProcStatus;

    FluLineEdit* m_pLineInput;
};

#endif // CUSTOMMESSAGEDIALOG_H
